package net.servir.censo.dao;

import java.util.LinkedList;
import java.util.List;


import net.servir.censo.model.Estudios;
import net.servir.censo.model.Snip;
import net.servir.censo.model.MayorGradoAcademico;
import net.servir.censo.model.Ambito;
import net.servir.censo.model.Departamento;
import net.servir.censo.model.Diagnostico;
import net.servir.censo.model.Distrito;
import net.servir.censo.model.Ejecutora;
import net.servir.censo.model.EstadoInscripcion;
import net.servir.censo.model.GenOption;
import net.servir.censo.model.JspResponsableEdicion;
import net.servir.censo.model.NivelGobierno;
import net.servir.censo.model.Persona;
import net.servir.censo.model.Pliego;
import net.servir.censo.model.Profesion;
import net.servir.censo.model.Provincia;
import net.servir.censo.model.Regimen;
import net.servir.censo.model.Responsable;
import net.servir.censo.model.ResponsableBusqueda;
import net.servir.censo.model.Sector;
import net.servir.censo.model.ServicioCivil;
import net.servir.censo.model.ServicioCivilBusqueda;
import net.servir.censo.model.Sistema;
import net.servir.censo.model.TipoDocumento;
import net.servir.censo.model.TipoObservacion;

public interface ServicioCivilDAO { 

	//--- jp ---
	public LinkedList<Estudios> ObtenerEstudios();
	public LinkedList<MayorGradoAcademico> ObtenerMayorGradoAcademico();
	public LinkedList<Snip> ObtenerSnip();
	public String ObtenerTituloUniversitario(Number idServicioCivil);
	//--- fin ---
	public LinkedList<Sistema> ObtenerSistema(); 
	public LinkedList<Ambito> ObtenerAmbito(Number id_sistema);
	public LinkedList<Regimen> ObtenerRegimen();
	public LinkedList<TipoObservacion> ObtenerTipoObservacion();
	public LinkedList<Profesion> ObtenerProfesion();
	public LinkedList<TipoDocumento> ObtenerTipoDocumento();
	public List ObtenerFunciones(Number idServicioCivil);
	public ServicioCivil ObtenerServicioCivil(Number idServicioCivil);
	public String AgregarServicioCivil(ServicioCivil obj);
	public String EditarServicioCivil(ServicioCivil obj);
	public String AgregarFuncionesSC(Number idServicioCivil, String listaFunciones, Number idAmbito);
	public String VerificarExisteDNI(String dni, Number idEjecutora);
	public String VerificarExisteOtroDNI(String dni, Number idEjecutora, Number idServicioCivil);
	public String VerificarExisteOtroCorreo(String correo, Number idEjecutora, Number idServicioCivil);
	public List ObtenerActividades(Number idFuncion);
	public String ObtenerDescEtapaFuncion(Number idFuncion);
	public LinkedList<NivelGobierno> ObtenerNivelGobiernos();
	public LinkedList<Sistema> ObtenerSistemas();
	public LinkedList<EstadoInscripcion> ObtenerEstadoInscripcion();
	public LinkedList<Ambito> ObtenerAmbito();
	public LinkedList<Departamento> ObtenerDepartamentos();
	public LinkedList<Distrito> ObtenerDistritos(String coddep, String codpro);
	public LinkedList<Provincia> ObtenerProvincias(String coddep);
	public LinkedList<Ejecutora> ObtenerEjecutoras(Integer idPliego);
	public LinkedList<Pliego> ObtenerPliegos(Integer idSector);
	public LinkedList<Sector> ObtenerSectors();
	public List ObtenerRptResponsables(ResponsableBusqueda obj, String estado);
	public List<Number> ObtenerIdFuncionesSC(Number idServicioCivil);	
	public ResponsableBusqueda ObtenerResponsable(Integer idResponsable);
	public void grabarResponsable(JspResponsableEdicion obj);
	public Integer grabarNuevoResponsable(JspResponsableEdicion obj);
	public LinkedList<Ejecutora> ObtenerEjecutoras();
	public LinkedList<Ejecutora> ObtenerEjecutorasNivelGobierno(
			Integer idNivelGobierno,String ubigeo);
	public void grabarValidacion(ServicioCivil obj);
	public void grabarHabilitacion(JspResponsableEdicion obj);
	
	
	public Responsable GetResponsable(Number idResponsable);
	public Persona GetPersona(Responsable responsable);
	
	public Responsable GetResponsablePorDNI(String dni);
	public void EliminarServicioCivil(ServicioCivil obj);
	public void EliminarParticipante(JspResponsableEdicion obj);
	public List ObtenerRptServicioCivil(
			ServicioCivilBusqueda servicioCivilBusqueda, String estadoRegistro);
	public void grabarObservacion(ServicioCivil obj);
	public void grabarSubsanacion(ServicioCivil obj);
	public void grabarValidacion(Persona persona);
	public List<Diagnostico> ObtenerDiagnosticos();
	public Diagnostico GetDiagnostico(Number idDiagnostico);
	public LinkedList<GenOption> ObtenerEstadosInscritos();
	public LinkedList<GenOption> ObtenerEstadosResponsable();
	public LinkedList<GenOption> ObtenerEstadosPlazo();
	public ServicioCivil ObtenerServicioCivilPorDNI(String dni, Number idPersona);
	public Responsable GetResponsablePorEjecutora(Number idEjecutora);
	public String ObtenerClave(String dni, Integer idSistema);
	//Query String para Responsables
	public String ObtenerRptQueryResponsables(ResponsableBusqueda obj, String estadoRegistro);
	//Quetry String para Servicio Civil
	public String ObtenerRptQueryServicioCivil(ServicioCivilBusqueda obj,String estadoRegistro);
}
